home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacAddict 61
/
MacAddict_061_2001_09.iso
/
pc
/
Software
/
Development
/
REALbasic 3.2.1 PPC Demo
/
REALbasicÆ 3.2.1 PPC
/
Read Me's
/
REALbasic 3.0 Release Notes
< prev
next >
Wrap
Text File
|
2001-01-31
|
108KB
|
2,412 lines
Release notes for REALbasic 3.0
12 February, 2001
REALbasic 3 contains the following new features:
(All) ApplicationSupportFolder: this new global method gives you a
FolderItem that refers to the Application Support Folder, or
nil if that is not available.
(All) Arrays: properties can now be declared empty -- e.g., foo(-1)
as Integer -- just like local arrays.
(All) Edit field: CharPosAtLineNum method added. This lets you find
the (1-based) character position of the first character on the
given (0-based) line number in a multi-line edit field. The
method interface is CharPosAtLineNum(lineNumber as Integer) as
Integer.
(All) Edit field: LineNumAtCharPos method added. This lets you find
the (0-based) line number on which any 1-base character
position can be found in a multi-line edit field. The method
interface is: LineNumAtCharPos(charPosition as Integer) as
Integer. In combination with the ScrollPosition property added
in a6, this lets you scroll the edit field to a particular
place in the text.
(All) Edit field: ScrollPosition property added. This is the 0-based
index of the topmost visible line. It is both readable and
writable (may be used to scroll the Edit field).
(All) Handle: the new Handle property deprecates the existing
MacControlHandle property. Any visible win32 control should
have a handle. This new property provides identical
functionality as that of MacControlHandle, but the name change
reflects that it is now implemented in a cross-platform way.
(All) Language: arrays can now be declared of size -1 (i.e., empty).
(All) Language: global constants can now be used as dimensions in
array declarations.
(All) List box: ScrollBarHorizontal property added to listboxes. Now
horizontal scrolling in a listbox is as easy as setting this
value to true. This property is settable in code as well so you
can leave it off until its needed. The pagestep value is set
the same as the Mac OS Finder's list view (i.e. 18 pixels of
overlap)
(All) List box: ScrollBarVertical property added to listboxes. Now
Vertical scrollbars are optional. You can set this value in
code. This can be useful if you want the scrollbar to appear
only after you have sufficient number of rows to make it
useful. Your Win32 users may expect this.
(All) List box: ScrollPosition property added. This is the 0-based
index of the topmost visible row. It is both readable and
writable (may be used to scroll the list box).
(All) List box: ScrollPositionX integer property added to list boxes.
You can scroll a list box horizontally by adding a Scroll bar
control which modifies this property. This property can be set
in the IDE and as such will scroll IDE columns accordingly.
NOTE: it is perfectly acceptable to use a negative value here.
(All) Pop-up menu: ListIndex is a property that can now be set at
design time.
(All) PrinterSetup: resolutions higher than 72 dpi supported. New
"MaxVerticalResolution" and "MaxHorizontalResolution"
properties added. These default to 72; you can change them to
the maximum printer resolution you're prepared to handle, or -1
for "highest possible resolution". After calling
PageSetupDialog, OpenPrinter, or OpenPrinterDialog, the
"VerticalResolution" and "HorizontalResolution" properties will
be automatically set to the highest resolution supported by the
printer driver, within your specified constraints. Printing
will then occur at that resolution. Will not affect existing
code.
(All) REAL Database: ALTER TABLE command now supported. Syntax: ALTER
TABLE <table name> ADD <field name> <field type> [NOT NULL]
(All) REAL Database: columns can now be added to a database after a
table is created
(All) Runtime function: this new function provides information about
the current state of the runtime environment, for aid in
debugging. The current functions are: Runtime.ObjectCount as
Integer: returns the current number of objects in existence;
Runtime.ObjectClass(Index as Integer) as String: returns the
class of the indicated object, where Index is a number >= 0
and < ObjectCount; Runtime.ObjectRefs(idx as Integer) as
Integer: returns how many references there are to the
indicated object; Runtime.ObjectID(idx as Integer) as Integer:
returns a unique identifier for the indicated object; no other
object in existence at the same time will have the same ID.;
Runtime.MemoryUsed as Integer: returns the total amount of
memory being used by allocated objects.
(All) Serial Number: REALbasic is now using a new serialization
scheme, it's no longer necessary to have previous version of
REALbasic installed to upgrade (you must know your previous
serial numner, however).
(All) Sprite surface: attach method allows you to attach custom
Sprite subclass objects.
(All) Sprite surface: bit-depths of 8, 16, or 32-bit color now
available, rather than 8-bit only.
(All) Sprite surface: note -- now an internal plug-in, which is
included in compiled applications only when used.
(All) Sprite surface: resizable on the fly (use
Left/Top/Width/Height).
(All) Sprite surface: Stop and Update methods allow for more control
over running of the Sprite surface.
(All) Sprite surface: window mode -- now runs within a window. New
Window properties allow for full-screen mode.
(All) String function: Replace -- faster by about 22% in some cases.
(All) String function: ReplaceAll -- faster by about 50% in some
cases.
(All) Window class: FullScreen property added. When this is set to
true, the window resizes itself to cover the entire screen (in
the case of multiple monitors, it fits the one which contains
the greatest portion of the window). The Left, Top, Width, and
Height properties are changed to reflect the new window
position, and cannot be changed while FullScreen is true. Note
that in full-screen mode, a window may be partially covered by
the menu bar (under Mac OS). This property defaults to False.
(All) Window class: MenuBarVisible property added. When this is set
to false, the menu bar will be hidden whenever this window is
the front most (non-floating) window. The menu bar will be
shown again when another window (with MenuBarVisible=true)
becomes front most, or when the application is put into the
background. This property defaults to True, and works nicely
with FullScreen.
(Car) Constants: TargetCarbon built-in constant is now available.
(Car) Help Tags: this new property has been added to the Control
class. It is used for Carbon and Mac OS X help tags, as well as
Win32 tool tips.
(IDE) About Box: Layout and Graphics completely redone.
(IDE) AppleScript: Scriptable IDE -- build command added; builds are
now scriptable and recordable. See Developers Guide for
details.
(IDE) AppleScript: Scriptable IDE -- Build dialog now scriptable and
recordable, with the following: Boolean flag "modified";
Boolean flag "buildMac68k"; Boolean flag "buildMacPPC"; Boolean
flag "buildMacCarbon"; Boolean flag "buildWin32"; String
property "buildMacName"; String property "buildWinName"
Descriptions are available in the AppleScript dictionary
(viewable with your favorite script editor)."
(IDE) AppleScript: Scriptable IDE -- the Open, Save, and Quit
commands are now scriptable and recordable.
(IDE) AutoSave: If REALbasic exits abnormally a user will be prompted
to restore their project when next using REALbasic. Saves
happen directly before Running and Building.
(IDE) Build dialog: Target Types -- now allows building of any target
type (68k, PPC, Carbon, Win32).
(IDE) Code Editor: autocomplete pop-up now wraps around: pressing the
up arrow key when the top item is selected jumps to the bottom,
and vice-versa. (Works in the online help too.)
(IDE) Code Editor: Autocompletion -- various enhancements have been
made to the type-ahead autocompletion function: now includes
global methods, variables, and constants; now considers
user-written subroutine names only at the start of a line, and
function names only after the start of a line; plug-in classes
now provide autocompletion to local variables, just like
locals which refer to built-in types; now includes menu items;
includes True" and "False" keywords; now recognizes the data
type of global properties and methods, and correctly accounts
for methods which can be both read and written (like
Listbox.ScrollPosition); private methods and properties are now
considered only when accessible (e.g., within the defining
class or some subclass); Application method now resolves to
your custom application class, if any.
(IDE) Code editor: Autocompletion multiple choice -- pressing the Tab
key while there is more than one autocompletion possibility (as
indicated by "..." after the cursor) now pops up a list of
choices. Use the up and down arrow keys to highlight a choice.
Select a choice with Return, Enter, Right Arrow, Tab, or by
clicking. Cancel with the Esc, Left Arrow, Delete, or Clear
key. Known issue: if there are more options than can fit on the
screen, only the first screen full is displayed.
(IDE) Code editor: Autocompletion now smarter in several ways; it
knows more words and makes better use of context clues, and
also does partial autocompletion when full autocompletion is
not possible. For example, try x = bit" (going for "BitwiseAnd"
or "BitwiseOr"). Words considered for autocompletion include
local variables, class properties and methods, built-in
functions and classes, user-defined classes, plug-in classes
and methods, and other built-in keywords and constants. Context
clues are used, for example, to suggest subroutine names only
at the beginning of a line, and function names only after the
beginning of a line. The only major category of valid words not
yet considered are user-defined global methods and properties.
If you find any other oversights, please let us know!
(IDE) Code Editor: Autocompletion now understands array methods
(Append, Remove, etc.) for local arrays and array properties.
(IDE) Code Editor: Command-clicking a word in the source editor now
inserts that word at the insertion point cursor (flashing
vertical line).
(IDE) Code Editor: Copied text and text clippings of multi-line
selections now include indentation.
(IDE) Code editor: Copy-Click/one-click insert of browser item name
-- you can now option-click on an item in the browser on the
left, to insert that item into the source code. E.g., to insert
the name of a property or method without typing it, just
option-click that property or method in the list. (This extends
the existing function of option-clicking words and expressions
in the source code.)
(IDE) Code Editor: Double-click selection now works for
floating-point, hex, binary, and octal numbers.
(IDE) Code Editor: Double-clicking a parenthesis now selects the
entire parenthesized text (both parentheses and everything
between them).
(IDE) Code Editor: Double-clicking on a quotation mark now selects
the entire quoted string (both quotation marks and everything
between them).
(IDE) Code Editor: Horizontal scroll bar in code editor now adjusts
to actual range of text.
(IDE) Code editor: Menu Item "Copy and Append" allows you to copy
text and append it to previously existing text in the
clipboard. This is very useful if you want to copy several
pieces of code to one central location. The item appears in the
edit menu if you hold down the option key. Option-Command-C is
the shortcut.
(IDE) Code editor: Menu Item "Cut and Append" allows you to cut text
and append it to previously existing text in the clipboard.
This is very useful if you want to move several pieces of code
to one central location. The item appears in the edit menu if
you hold down the option key. Option-Command-X is the shortcut.
(IDE) Code Editor: navigation buttons now update the selection in the
list box on the left, as well as the source code area on the
right when you use the "Forward" and "Back" navigation buttons.
(IDE) Code Editor: new navigation buttons which perform the following
functions: bring Window editor to the front (the opposite of
double-clicking a control -- note: option-Tab is a keyboard
shortcut for this); show/hide empty methods and handlers; go to
previous method (i.e., the one previously accessed); go to next
method (the one more recently accessed) The latter two are like
the back/forward buttons in a web browser. Please note that
this feature is just a prototype and may not appear in
REALbasic 3.0.
(IDE) Code Editor: pasting of indented code into the Code Editor now
ignores leading white space so auto indentation is correct.
(IDE) Code Editor: Property, Method, and New Event dialogs now
support autocompletion (though they do not support the pop-up
list of choices).
(IDE) Code Editor: Show Empty Methods button no longer collapses
controls in the code editor list box.
(IDE) Code Editor: Syntax coloring has been extended to differentiate
literal numbers and literal strings from other code.
(IDE) Code Editor: triple-clicking now selects an entire line.
(IDE) Code Protection: substantially changed and improved. You can
now encrypt (protect) or decrypt (unprotect) a module while
it's in your project, using a command in the Edit menu or in
the contextual menu within the project window. When encrypting
a module, you now supply a password which can be used to
decrypt it later. At the same time, you may check an "allow
conversion to 2.1 format" checkbox -- this is significant
because the 2.1 file format uses much weaker encryption, but is
necessary if your code is to be used with REALbasic 2.1. NOTE:
only modules exported in the "standard" (version 3) format can
contain a password; 2.1 export files lose the password and
cannot be decrypted. NOTE: Don't forget your password.
(IDE) Constants: value is now shown in browser along with name and
icon.
(IDE) Debugger: ArrayViewer -- All of the benefits of the new Object
viewer are now part of the ArrayViewer as well.
(IDE) Debugger: Double local variables can now be changed in the
debugger just like other basic types.
(IDE) Debugger: Object viewer -- much more powerful: it's modeless -
you can keep the Object viewer open while running and stepping
through your code.; It's resizable - so you can see the entire
length of a folderitem, or other long items.; It displays its
name and type - makes it much easier to identify which Object
viewer to pay attention to.; Only one is created per object -
see object's relationships with each other.; Object viewer
remembers its position - it opens in its last position on your
screen.; Object viewer shares its Object's persistence - Object
viewer windows disappear when the object they are referring to
is garbage collected - Use this to check for memory leaks (If
the Object viewer for that object is still open you may have a
leak.)
(IDE) Debugger: Stepping skips lines with comments or spaces only
unless a breakpoint is set on such a line.
(IDE) Default Stationery: upon launch or use of the "New" command,
REALbasic looks for a stationery file called "Default New
Project" in the Stationery folder. If found, this is loaded (as
Untitled) instead of the built-in default project.
(IDE) Exported Code: may be saved in either 2.1 or standard (version
3) format. If you just drag a module to the Finder, it's saved
in standard format, but by using the Export menu command, you
can choose either standard or Version 2.1 format.
(IDE) File Types: pop-up list of suggested file types now includes
three special types; the first applies to all platforms, while
the latter two apply only to Mac OS. The new types are:
"special/any", creator '????', type '????'; "special/folder",
creator 'MACS', type 'fold'; "special/disk", creator 'MACS',
type 'disk'
(IDE) Floating point values' display in the IDE will now changes
intelligently when the window size is changed. To see more
precision just resize the Properties Window, Object viewer, or
ArrayViewer.
(IDE) Keyboard Shortcut: Debugger -- adding/clearing a breakpoint now
has a keyboard shortcut, Cmd-B.
(IDE) Keyboard Shortcut: Online Reference -- now accessible with the
Help key (equivalent to command-1).
(IDE) List box: font, font size, and font style now displays in the
Window editor.
(IDE) List box: HeadingIndex can now be set from the properties
window and it will a visible effect on the list box when set.
(IDE) List box: headings can now be replaced by one call. Use an
index of -1 and set them to a tab delimited string. E.g.
listBox1.heading(-1) = Fred" + chr(9) + "Tom" + chr(9) +
"Harold"."
(IDE) List box: Initial Value text now displays in the IDE.
(IDE) List box: is now more interactive in the design environment.
The following properties now have a visible effect on the list
box in the design environment: hasHeading, scrollPositionX,
HeadingIndex, Initial Value (only for list boxes with
Headings). These next properties improved in their
interactivity: enabled, columnCount, columnWidth.
(IDE) List box: ScrollPosition is now settable from the IDE. Use this
to test how the property behaves.
(IDE) Menu: Save is only enabled when the project has changed. You
can use this to help you verify that the project is in fact
saved in its current state.
(IDE) Menus: Keyboard shortcut for Save As... menu item added
(shift-command-S)
(IDE) Movie Player: Appearance in the design environment and in
running applications now more similar. Controllers and badges
display when specified, and the control looks visually distinct
from Canvases even when no controller is visible (it's now a
deep blue rectangle with a movie icon in the center).
(IDE) ObjectViewer/ArrayViewer: now appear in the window menu (as
appropriate)
(IDE) Online Reference: default mode can be changed from "Search" to
"Go" via a new Preferences option.
(IDE) Online Reference: go to -- type the name of the class, method,
or keyword you're looking into the topic field and press Return
or click Go to quickly find an entry.
(IDE) Online Reference: navigation buttons added to give you the
ability to step forward and back through recently accessed
items, or return to the introduction.
(IDE) Online reference: position and state are now remembered between
REALbasic sessions.
(IDE) Online Reference: search -- type a word that isn't in the topic
list (or add a space at the end of the word) or holding the
Option key to make the "Search" button appear. Then press
return or click Search. Search results are shown in the list on
the left. Searches are done with whole-word, case-insensitive
matching. Currently only the first word in the search field is
used; any subsequent words are ignored. Click the Theme or
Alpha buttons to return to the full topic list.
(IDE) Online Reference: Searching with the theme bevel button
depressed now expands the theme and selects the relevant item
instead of selecting the theme.
(IDE) Project items: Finding External Files -- Now REALbasic searches
smarter when looking for external files. it now always looks in
the folder that contains the project (if available). It also
looks in the folders of any previously found items, including
from other projects in the same REALbasic session. This last
bit was designed for those of you that like to store common
pictures, sounds etc. between projects (such as icons you use
in every project). If you ever move a common resource folder
just open all the affected projects and save them. You will
only need to specify the common items once.
(IDE) Project Window: contextual menu support added --
control-clicking project items now pops up a contextual menu of
things you can do to those items. The options vary depending on
the type of the item, but may include: Edit - open the item for
editing within REALbasic.; Delete - remove the item from the
project.; View - view the item within REALbasic.; Play - play
the sound.; Open File - for items stored externally, open the
file as if double-clicked in the Finder.; Reveal in Finder -
open the file's folder in the Finder and highlight the file.;
File Path - a hierarchical menu allowing you to open any folder
enclosing the file.; Relocate - choose a new external file to
associate with the item.
(IDE) Project Window: Drag and drop folders from the project window
to the finder, and vice versa.
(IDE) Project Window: external editing -- double-clicking items which
can't be edited within REALbasic (e.g., pictures and scripts)
now opens them externally, as if you'd double-clicked them in
the finder.
(IDE) Project Window: keyboard shortcut -- when an item is selected,
you can press the Tab key to jump to the Name field in the
Properties window to change the item's name (even if the
Properties window was previously hidden).
(IDE) Project Window: now displays a little padlock badge on
protected modules. (This is one part of a larger change to the
interface for protected items.)
(IDE) Properties Window: Negative numbers now appear in red.
(IDE) Registration Dialogs: Redone for version 3.
(IDE) Registration: If REALbasic is already in use on the network,
you are now given the option to re-register your copy.
(IDE) Registration: REALbasic now ignores return characters that
proceeding or following anything in the registration dialog,
and removes them for the serial number field and the previous
serial number field. This is useful if you accidently copy the
return char when registering REALbasic.
(IDE) Registration: REALbasic now uppercases all text that is entered
into the Serial number field and the previous serial number
field and doesn't allow you to type spaces.
(IDE) Scroll Bar: Appearance in the design environment and in running
applications now more similar. The following properties of
scroll bars are now interactive in the design environment:
Value, PageStep, Minimum and Maximum.
(IDE) Slider: Appearance in the design environment and in running
applications now more similar. The following properties of
sliders are now interactive in the design environment: Value,
Minimum and Maximum.
(IDE) Stationery: create stationery pads when saving a file. Do this
by using the Stationery Option" command in the Navigation
Services pop-up menu, or if you don't have Navigation Services,
click the "Stationery" checkbox in the Save As dialog.
(IDE) Tool bar: balloon help now provided for plugin controls.
(IDE) Tool bar: separators visually divide the controls into several
groups: decorations at the top, input/output controls in the
middle, invisible controls third, and plugin controls at the
bottom.
(IDE) Tool bar: tool bar has new look and feel. Functionality should
be mostly the same, but you'll note that some controls are
available in two versions (e.g., a vertical and horizontal
scrollbar).
(IDE) Toolbar: may be switched between vertical and horizontal by
option-clicking the close box.
(IDE) Toolbar: mouse-over and mouse-down colors are now taken from
the Appearance Manager settings (the "Variation" color);
requires Appearance Manager 1.1 or later.
(IDE) Viewers: Array viewers now have a Pop-up for viewing specific
object properties either side by side or as the whole element.
(IDE) Window Editor: Edit field background and foreground colors now
display properly in the IDE.
(IDE) Window Editor: Edit field with the password property set
displays bullets instead of the text in the IDE.
(IDE) XML Export/Import: lengthy XML conversions show watch cursor.
(IDE) XML Export: projects can now be exported to the new XML format
by using the "Save As" command, then choosing "XML" from the
Format pop-up menu. When you choose XML format, you are really
doing an export, not a save; the project stays associated with
its original file location. Finally, note that you may need to
increase the memory allotted to REALbasic when using XML
export.
(IDE) XML Export: strings containing ASCII values less than 32 are
now represented with a special "<Hex>" tag, enclosing the
hexadecimal encoding of the entire string.
(IDE) XML Import: projects can now be imported from XML via the
normal "Open" file dialog. All text files will now show up in
the Open dialog, but only those which contain proper XML data
can actually be read. If the read is successful, a new project
called "SomeXMLFile (Converted)" will be created, where
"SomeXMLFile" was the name of the XML file. Finally, note that
you may need to increase the memory alloted to REALbasic when
using XML import. The AppleScript syntax is the same as for
opening any other file ('tell application "REALbasic" to open
someFile').
(Mac) AutoDeactivate: this new Boolean control property, true by
default, allows you to control whether a control should be
deactivated (on Mac OS) when the window is deactivated.
(Mac) Balloon Help: when one help message (enabled or disabled) is
not available, the other is shown instead. This makes common
work arounds (putting the same text in both help messages, or
putting something in the enabled help even for controls which
are always disabled) unnecessary (though they will still work).
(Mac) Edit field: Multi-Line edit fields have improved performance
when setting the text property.
(Mac) Folder Properties: when a FolderItem now refers to an actual
folder (rather than a file), the "MacType" property now returns
"fold" and the "MacCreator" value is "MACS" (instead of empty
strings). In addition, the "Type" property will now return a
matching file type, if you have one defined.
(OSX) Plug-in support: REALRegisterEventFilter now works for Carbon.
Note that this has not yet been thoroughly tested; please try
it and let us know if it works for you (3b2).
(OSX) Project window: close button displays a dot when the project
has changed. Note: this feature is not present in the Public
Beta of Mac OS X (nor in previous versions of the Mac OS).
(OSX) QuitMenuItem: when running under Mac OS X, a menu item of class
QuitMenuItem will be mapped to the special quit command in the
application menu. You can still set, get, and change the text
of this item, but other changes (such as the command key
shortcut) have no effect. Under Classic Mac OS or or Win32,
your QuitMenuItem stays put and behaves as it always has.
(OSX) Shell class: used to execute UNIX shell commands and get the
results. It has a single method called "Execute" which executes
a one-line UNIX command. This causes two properties on the
Shell object to change: ErrorCode, which is a system-supplied
error code or 0 for no error; and Result, which is a string
containing the output of the command.
(Win) Accelerator Keys: PushButtons, BevelButtons, Checkboxes,
RadioButtons, and Tab Panels now support accelerator keys.
Accelerator keys (or short cut keys) are underlined under
Windows. To register a key as an accelerator key, preceed the
key with an ampersand, i.e. the caption "Go &Home" for a
PushButton registers the 'H' key as an accelerator key.
Pressing ALT+H on Windows will trigger the Action event of the
PushButton.
(Win) Screen and ScreenCount: Now support multiple monitor Win32
systems. Multiple monitors is only available on systems that
are Win98/Win2k or newer.
(Win) Shell class: execute DOS shell commands and get the results. It
has a single method called "Execute" which executes a one-line
DOS command. This causes two properties on the Shell object to
change: ErrorCode, which is a system-supplied error code or 0
for no error; and Result, which is a string containing the
output of the command. A "TimeOut" property was added, which is
an integer data type that specifies how long (in milliseconds)
a process can run before it is automatically terminated. A
value of -1 means the process can run indefinitely. This
property, currently, only applies to Windows (not needed on Mac
OS X). The default value for "TimeOut" is 2000, or 2 seconds.
(Win) Sliders: now appear as sliders in Win32 and not as scroll bars.
(Win) Tool tips: Windows controls now support tool tips. Assign some
text to the HelpTag property of a control, and leave your mouse
pointer over a control to display it.
This release contains the following improvements to previously existing
features:
(All) List box: Reduced flicker for list boxes when using horizontal
scrolling.
(IDE) Code Editor: flicker seen when adding code to a new method
while in "Hide Empty Items" mode has been reduced.
(IDE) Errors: REALbasic now reports a better error message when
builds fail as a result of passing floating point values by
ref.
(IDE) Properties window: improved look under Mac OS X (Aqua).
(Mac) Listbox: improved look under Mac OS X (Aqua).
(Mac) Plug-in support: REALRegisterEventFilter now allows you to
receive event types which do not go through our usual queue,
such as updateEvt, osEvt, and others which we may ignore. Two
caveats: first, these may appear out of order relative to
events which go through our queue; second, some events (like
mouseUp) appear only under certain circumstances (since they
may be filtered directly by the Event Manager).
This release contains the following optimizations for improved
performance:
(All) InStr: now about 30% faster.
(All) InStrB: now about 25% faster for small searches; large searches
scale substantially better since a different algorithm is used.
(All) NthField: now about 50% faster.
(All) Object destruction: linked objects destruction algorithm
substantially improved; it is now both safer and faster.
Previously, releasing the head of a long chain of objects could
result in a crash (stack overflow). This is no longer possible;
any chain of objects which fit into memory in the first place
can be safely deallocated.
(IDE) Code Editor: typing in very long methods now considerably more
responsive (only recalculates the vertical scrollbar when the
number of source code lines has actually changed).
(IDE) Properties Window: fills values in more quickly (most apparent
on slower machines).
(Mac) CPU Usage: REALbasic and REALbasic-built applications no longer
appear to consume most of the CPU cycles even when idle; they
now "sleep" up to 1/3 second in between events. This applies
even when there are active timers, but does NOT apply when
there are active threads (threads use CPU cycles as always).
Here are some tips for getting the most out of this new release:
(All) Listbox: If you want miniature scrollbars or scrollbars that
leave room for status bars or buttons just set
ScrollBarVertical to false and ScrollBarHorizontal to false and
add your own scrollbars and tie their value properties to
ScrollPosition and ScrollPositionX respectively.
(Car) Control.BalloonHelp: if you provide both a HelpTag and a
BalloonHelp (or DisabledBalloonHelp) value for a control, users
under Carbon or OS X will be able to switch from the short help
tag to the longer balloon help by pressing the command key.
(IDE) Project items: Finding External Files -- In the very rare event
that REALbasic guesses the incorrect external file for your
sound, picture etc. just control click on the item and choose
Relocate. You will then be able to correct REALbasic's
incorrect assumption.
(IDE) Workflow: quickly create, name, and edit a new class by using
the New Class command, hit Tab, type the class name, press
return to accept, and press return again to open the code
editor. Works for modules and interfaces too.
Here are some notes to keep in mind while using this release:
(All) Sprite surface: may need more RAM now due to higher bit depth.
Rough estimate of the RAM needed for the surface, not counting
sprites, is: (depth/8) * width * height + (depth/8) *
(width+128) * (height+128)
(IDE) Sprite surface: new features not available in older versions.
Using the new Sprite surface features will result in compiler
errors if you attempt to compile the project with an earlier
version of the IDE.
This release contains the following changes to behavior:
(All) Drag and Drop: dropping now supported by most controls.
(All) Edit Field: cursor and scroll position now moved to the top of
the edit field rather than the bottom when a value is assigned
to EditField.text.
(All) Language: obsolete keywords "of", "var", and "#bad" removed."
(All) List box: Adding a row in a listbox now commits any edits
before the add. This was done to be consistent with the
InsertRow and RemoveRow bug fixes.
(All) List box: Column widths are now always what the user specifies
(i.e. the last column doesn't grow to size of the rest of the
list box. Absent of any column specifications the headers will
be divided evenly. If there are less column widths specified
than the total number of columns the remaining columns will be
sized the same as the last specified column. Header End caps
are now added for any additional unused space if headers are
used. Header end caps will do nothing when clicked.
(All) Pop-up Menu: ListIndex is now 0 by default.
(All) Sprite surface: "ClickToClose" changed to "ClickToStop". The
old "ClickToClose" property is still available for use in code,
but it's deprecated (so use ClickToStop instead).
(All) Timers: periods of less than or equal to 0 now default to a
period of 1 millisecond.
(IDE) Auto Restore: Now remembers the name of your old project. The
name of the project after a restore will be "MyProject
(Restore)" if your project was named "MyProject"."
(IDE) Auto Restore: The backup file is now stored in the new file
format. This allows REALbasic to more fully restore your
settings to a pre-crash state.
(IDE) Autocomplete pop-up: choices now appear in alphabetical order.
(IDE) Balloon Help: About REALbasic... menu item is now available.
(IDE) Build dialog and Editor Settings dialog have been adjusted
slightly to look better under both Aqua and Platinum.
(IDE) Build Dialog: Compress checkbox no longer enabled for Carbon
builds.
(IDE) Build Dialog: Now is much more interactive. Options are enabled
and disabled based on selected checkboxes.
(IDE) Carbon Builds: an additional 512k of memory is added to Carbon
built applications.
(IDE) Code Editor: Add/Remove Comments behavior improved (it's now
reversible, existing comments are retained and persist, and it
leaves the affected lines selected).
(IDE) Code editor: default width increased by 144 pixels.
(IDE) Code Editor: double-click-and-drag behavior now matches Mac OS
standard.
(IDE) Code editor: Hide Empty Methods mode has changed slightly; you
may now delete the contents of a method or event handler
without losing access to it in the source pane.
(IDE) Code editor: Navigation Buttons -- constants no longer hidden
by Hide Empty Methods button.
(IDE) Code editor: scrolls all the way to the left when the cursor is
placed on the first character of a line.
(IDE) Database Editor: dialogs used for editing database schema has
been changed for clarity and ease of use. Functionality remains
the same and depends on the capabilities of the database type.
(IDE) Database plug-ins are now external rather than internal. The
database plug-ins are: CSV Database Plug-in, OpenBase Database
Plug-in, PostgreSQL, DBF Database Plug-in, OracleOCI 7.1
Plug-in, ODBC Database Plug-in, dtfSQL Database Plug-in,
Assorted 4D Plug-ins (6.0, 6.5, and 6.7 in ADSP and TCP/IP
flavors)
(IDE) Default Window Position: adjusted so it doesn't overlap the
toolbar in the toolbar's default position. (Note: this only
affects new projects, and only as seen in the IDE.)
(IDE) Dialogs for editing properties, methods, and events are now
movable Modal.
(IDE) Icons: updated for more modern appearance.
(IDE) IDE Memory Allocation: increased from 5500K to 8192K (but
minimum allocation remains 4500K).
(IDE) Language Reference: Window retitled "Language Reference"
(IDE) License Agreement Dialog readied for localization.
(IDE) List box: horizontal scrollbar now uses 16 for the linestep
value, as the finder does.
(IDE) List box: properties window -- all scrolling properties are
grouped together.
(IDE) List box: The default header now is set to the column number
only -- instead of "Field1" it's "0""
(IDE) List box: You must use a space if you want an empty header,
empty strings will use the default header: ListBox1.heading(-1)
= "" sets all headers of listbox1 to their defaults.;
ListBox1.heading(5) = "" sets column 5's heading to its default
heading; listbox1.heading(5) = " " sets column 5's heading to
empty.
(IDE) Menu item: "Editor Settings" has been renamed "Preferences".
(IDE) Menu Item: Cut And Append's keyboard shortcut has been
re-assigned to Shift-Cmd-X to more closely pair with "Copy and
Append's new keyboard shortcut."
(IDE) Menu Shortcut: The Build Application menu shortcut has been
changed from Cmd-M to Cmd-Shift-M to accomodate Mac OS X. Mac
OS X defines Cmd-M as minimize.
(IDE) Menu: "Reference" re-labeled "Language Reference"
(IDE) Menus: Adding a method, constant, property or event is no
longer prohibited during a debug session. REALbasic used to
have this capability before Jun 30 2000.
(IDE) Menus: Show Locals menu renamed to Show Variables (and similar
for "Hide Locals").
(IDE) Menus: Show/Hide Variables and Show/Hide Stack menu items are
now in the Window menu
(IDE) Movie player: displays a lighter blue background color to match
the "no signal" color on new TV's and the displays the Movie
player icon from the tool bar.
(IDE) Movie Player: new toolbar icon at its center instead of the old
one.
(IDE) Navigation Buttons: Hide Empty Methods button no longer hides
properties.
(IDE) Online Reference: after a search, if there is an exact topic
match, that topic selected first (rather than whatever topic
happens to be at the top of the search results).
(IDE) Online Reference: now does "Search" by default instead of "Go"
(default mode can be changed from "Search" to "Go" via a new
Preferences option).
(IDE) Online Reference: Pressing the Go button after a successful
search for an item that is not in the search list will display
the item in the themes list.
(IDE) Online Reference: topic is highlighted in the topics list on
the left side of the window whenever a topic is changed,
whether by clicking a hyperlink or typing it in the new topic
field.
(IDE) Pop-up menu: InitialValue, and ListIndex property in the Window
Editor now accurately reflected. For example if you have "Zero,
One, Two, Three" as Initial Values and 2 as the ListIndex of a
selected Pop-up, the Pop-up will display the word "Two" in the
IDE window editor.
(IDE) Preferences: Layout changed slightly to accomodate string
change "Online Help" -> "Language Reference"
(IDE) Preferences: REALbasic now loads and saves its preferences in
the file "REALbasic3 Prefs". REALbasic will read your old prefs
the first time it is run, so that you don't have to re-specify
all your preferences.
(IDE) Project file format: REALbasic 3 has an all new file format.
For alpha releases you can choose whether to use the new format
or the version 2.1.2 format:; New projects have the new
("Standard Project") format by default, you can choose whether
to use that or the 2.1.2 format when you save.; Use the "Save
As" command, to choose between Standard Project format and the
older one.; Projects are saved in the same format in which they
are opened.
(IDE) Project Window: list is now drawn in 10-point Geneva, and items
which are stored external to the project file are labelled in
italics.
(IDE) Project Window: when you create a new class, module, or
interface, the item is simply selected in the project window
rather than opening the Code Editor immediately.
(IDE) Properties Window: cosmetic improvements, including a better
look under Aqua.
(IDE) PushButton: now 69 pixels by default, per the Aqua standard
(looks OK on Classic/Win32 too).
(IDE) Registration: Now gives explicit feedback when you register as
a pro customer. REALbasic already gave feedback in other cases.
(IDE) Shared Libraries: icon now have a more appropriate appearance
in the Project window.
(IDE) Toolbar: flip between horizontal and vertical toolbars by
clicking the zoom box, rather than by option-clicking the close
box.
(IDE) Various Dialogs: adjusted to have a more proper appearance
under Aqua (Mac OS X).
(IDE) Viewers: window titles for Object viewers and Array viewers are
now more consistent with REALbasic syntax.
(IDE) Window Editor: Alignment guides are now darker (and so easier
to see under OS X).
(IDE) Window Editor: selection handles are now drawn even when
multiple controls are selected (for improved visibility).
(IDE) Windows: new windows are document windows by default instead of
a modal ones, with the name Window# instead of Dialog#.
(IDE) XML Export: XML files now have a creator code of REALbasic
rather than BBEdit.
(Mac) CompressPPC: this option has been removed per Apple's request.
(Mac) Menu Text: ampersand symbols will display only if they are
preceded by another ampersand symbol. This is to make the
Windows and Mac platforms behave consistently. Note: old
projects with single ampersands will have to be updated.
(Mac) PushButtons, BevelButtons, Checkboxes, RadioButtons, Tab Panels
and Groupboxes: The caption of these controls that contain
ampersand symbols will display only if they are preceded by
another ampersand symbol. This is to make the Windows and Mac
platforms behave consistently. Note: old projects with single
ampersands will have to be updated.
(OSX) Menu item: "Editor Settings" (now "Preferences") appears in the
Application menu on Mac OS X.
(Win) ApplicationSupportFolder: now returns the Windows directory
folder.
(Win) Control Activation: controls no longer deactivate when a window
is deactivated in Win32, per normal Win32 application behavior.
(Win) Edit Field: point size was reduced slightly to match the point
size of other controls. This fixes the bug when editing a cell
in a list box, the edit field text does not completely fit
inside the cell, consequently some of the text was not visible.
(Win) Edit fields: background color is grayed out when the edit field
is disabled, (unless you've modified the Back color). With
unstyled Edit fields, the text is also grayed out.
(Win) MsgBox: icon more consistent with the Mac MsgBox.
(Win) Windows: fixed problem with windows disappearing behind the
main window. Reverted to the previous behavior as this fix
broke other things.
The following bugs were fixed in this release:
(68k) List box: Scroll bars now appear in 68k applications if their
properties are turned on in the IDE.
(All) Bevel Button: Fixed a bug which caused rare crashes when
destroying a bevel button containing an icon. (Could possibly
apply in other circumstances, too.)
(All) Bevel Buttons: Enabled setting in the IDE now reflected by the
running application. There was a bug which caused these to
always begin enabled when run.
(All) Binding: Memory leak fixed.
(All) Command Keys: now pass through to the KeyDown event handler(s)
if they don't match any enabled menu item.
(All) Compiler: oversized integer literals (greater than 2147483647
or less than -2147483647) are now parsed as doubles, even
without a decimal point. Previously, oversized integer literals
were interpreted as a completely different number (due to
high-byte truncation).
(All) Database: PostgreSQL connectivity -- now accessible both from
classic Mac OS and Win32.
(All) Database: closing a database occasionally crashed -- fixed.
(All) Database: PostgreSQL Field Schema -- previously only worked if
the table name was given in lower case; now works in a
case-insensitive manner.
(All) Database: PostgreSQL Field schema: char(n) fields (fixed-length
character fields) length is now reported as n (the declared
field length) instead of -1.
(All) Database: PostgreSQL Field schema: IsPrimary column returns as
a Boolean value ("false") rather than an integer ("0"). Note
that IsPrimary is always false for PostgreSQL databases.
(All) Database: PostgreSQL Field schema: reports 35 different data
types (compared to previous 8).
(All) DatabaseCursorField.DateValue: assignments to this property
store the time as well as the date, as with DatabaseRecords.
When getting a value, the resulting Date object may now contain
a time as well as a date. For fields of type "Date", the time
will be 00:00:00 (midnight); and for fields of type "Time", the
date will be January 1, 0001. Fields of type "TimeStamp"
contain valid data for both the date and time (and this is now
supported).
(All) DatabaseRecord.DateColumn: assignments to this property now
store the time as well as the date, to support the SQL
"TimeStamp" and "Time" field types (as well as "Date"). Note
that if the date part is January 1, 0001, then this is converts
to SQL as just a time ("18:54:00"), whereas if the date is
anything else, it converts to SQL in full form ("2000-5-30
18:54:00").
(All) Dynamic Controls: Memory leak fixed both within the IDE and in
built applications.
(All) FolderItem.Type: now reports the correct type even when a
wildcard type ("????") is among the file types defined in the
project settings.
(All) List box: alignment -- left hand margin of the list box no
longer overwritten when the alignment isn't left and the data
is too long to fit.
(All) List box: clicks in the disabled scroll bar of a list box no
longer fall through to select a row.
(All) List box: Deleting a row in a list box now commits any edits
before the remove occurs. This prevents the editable cell from
clobbering the contents of the wrong cell.
(All) List box: Deleting rows in a list box with horizontal
scrollbars no longer produces screen trash in the bottom of the
listbox.
(All) List box: Editable cells in listboxes now resize immediately
when listboxes are resized, moved scrolled, or scrollbars are
added or removed.
(All) List box: editable cells no longer overwrite their boundaries
(All) List box: Inserting a row in a list box now commits any edits
before the insert. This prevents the editable cell from
clobbering the contents of the wrong cell.
(All) List box: No longer scrolls 1 pixel horizontally in cases where
it shouldn't scroll at all.
(All) List box: Resorting a list box now commits any edits before the
resort. This prevents the editable cell from clobbering the
contents of the wrong cell.
(All) List box: Right, Center, and Decimal aligned cells of listboxes
now truncate their text based on cell size (left aligned was
working previously) Decimal aligned text truncates by dropping
digits after the decimal, and by adding "..." when dropping
digits before the decimal place.
(All) Listbox: Fixed a problem that allowed you to add a horizontal
or vertical scrollbar more than once. Now any attempt to do so
will be ignored.
(All) Pop-up menu: RowTags memory leak fixed.
(All) Pop-up menus: RowTag method no longer crashes when given an
invalid row number.
(All) PostgreSQL dates: field types Date, Time, and TimeStamp are now
properly supported; use the DateColumn and DateValue accessors
for a date representation of this data, or use StringValue to
get a human-readable date and/or time.
(All) ReplaceAll: now correctly returns the sourceString when the
oldString is "".
(All) SpriteSurface: fixed bug which caused a crash if the
SpriteSurface had code in its Collision event, but no sprites
in the surface had a nonzero Group.
(All) Stability: a type of crash caused by destructor recursion has
been fixed.
(All) Stability: fixed a bug which caused occasional crashes when a
plug-in control (e.g. a BevelButton) closed its own window.
(All) Tab Panels: Text properties can now be set without causing a
compile-time error: TextFont, TextSize, Bold, Italic, and
Underline.
(All) Timer: timer reliability improved; timers can no longer get
stuck when the system tick count wraps around.
(All) Window activation: the REALbasic event "deactivate" occurs
before the automatic control deactivation process introduced in
a6 so that the old work around of storing the enabled state of
controls in the Deactivate event still works.
(All) Window.DrawInto: now works correctly for all control types,
with the following exceptions: Movie player: does not draw
(draws a frame with a large X" instead).; Sprite surface: when
drawn into another window, the position is wrong and in fact
relates to the position of its original window; still works
when printed, however.
(Car) BevelButton, Disclosure Triangle, and several other controls:
fixed bug which caused these to crash in Carbon applications
under MacOS 8/9 since 3.0a08 or so.
(Car) Command-Period: command-period now works in Carbon applications
or in the Carbon IDE.
(Car) Compiling: basic.cpp Assertion failure while building Carbon
applications no longer occurs.
(Car) FolderItem: a number of methods (e.g. Launch) which previously
did nothing under Carbon have now been implemented.
(Car) IDE: Contextual Menus now work under Carbon.
(Car) List box: checkboxes within a list box no longer get stuck in
the checked state in Carbon.
(Car) Menus: Apple Menu Items no longer appear twice in the Apple
Menu within the Carbon IDE, and built applications.
(Car) Project resources: resources can now be added to a project in
the Carbon IDE, and used as normal in Carbon builds.
(Car) Project window: Relocate contextual menu command -- now works
correctly with resources, scripts, and XCMDs.
(Car) Runtime Printing: now works in the Carbon IDE and Carbon
builds. Note: the SetupString property of the PrinterSetup
class has changed format for Carbon. This format is internal
and undocumented; don't count on it having any particular
structure.
(Car) Source Printing: now works in the Carbon version of the IDE.
(Car) TargetCarbon: the Carbon version of REALbasic now compiles as
Carbon when running in the IDE; you can verify this by checking
the TargetCarbon built-in constant.
(Car) Threads: now work in the Carbon version of the IDE (as well as
built applications).
(Car) Window Editor: Pushbuttons, GroupBoxes, RadioButtons, and
CheckBoxes are no longer invisible if placed after a Listbox in
the stacking order.
(Car) Window MaxWidth/MaxHeight: fixed bug which allowed the window
to be stretched one pixel larger than the specified limits.
(Car) Windows now highlight when they should.
(IDE) "Save As" dialog once again remembers previous project name.
(IDE) AppleEvents: 'quit' AppleEvent sent to an application while it
is running in the IDE now quits the application instead of
crashing REALbasic.
(IDE) Array Viewer: Fixed a failed assertion that occurred when
arrays weren't yet dimensioned.
(IDE) Array Viewer: Global Arrays of objects are now viewable and no
longer cause a crash.
(IDE) ArrayViewer: Colors in Array viewers are no longer 2 times
intended height.
(IDE) AutoRestore: now save its file in the preferences folder rather
than the temp folder. Mac OS 9.1 purges the "Temporary Items
Folder" at startup, making this a bad place to put this file.
This change also improves the Multiple-User support since each
user will have a copy their last AutoRestore project and not
the last one used on the system.
(IDE) Balloon Help: balloons no longer flicker every time the mouse
moves while running applications in the IDE.
(IDE) Build Errors: error messages are now more accurate when a build
fails due to a plug-in that doesn't support the target
platform, or a disk-related error.
(IDE) Build progress dialog: now correctly lists name of Carbon
application being built.
(IDE) Build Settings: "68k" checkbox value is now saved (both in
version 2.1 and in standard project files).
(IDE) Build Settings: "Language" pop-up value is now saved in
standard(v3) project files.
(IDE) Code editor -- Hide Empty button fixed bug which caused this to
hide events of controls, even when those events contained code.
(IDE) Code Editor: command-key presses no longer fall through to the
code editor when a running application is suspended in the
debugger.
(IDE) Code Editor: Autocompletion -- Ellipsis character used to show
partial autocompletion is now international-savvy.
(IDE) Code Editor: Autocompletion no longer gets confused and
crashes when you have a folder in your project with the same
name as a class.
(IDE) Code Editor: Autocompletion -- no longer suggests "As" before
the variable name.
(IDE) Code Editor: Autocompletion -- now recognizes parameters in
functions as well as in subroutines.
(IDE) Code Editor: Autocompletion clears and recalculates any pending
autocompletion whenever the cursor is moved (even if moved with
the mouse).
(IDE) Code Editor: Autocompletion no longer gets confused in certain
cases involving array properties.
(IDE) Code Editor: Autocompletion now knows about the InStrB and MidB
functions.
(IDE) Code Editor: Autocompletion now knows what to do with variables
whose type is a plug-in control.
(IDE) Code Editor: Autocompletion now understands user-defined
functions better.
(IDE) Code Editor: Autocompletion pop-up -- control arrays now appear
only once, rather than once for each instance.
(IDE) Code Editor: Autocompletion pop-up menu now cancels cleanly
when you press Delete, Esc, etc.
(IDE) Code Editor: Autocompletion pop-up no longer causes occasional
crashes when it's cancelled.
(IDE) Code Editor: copy-clicking an array property in the browser now
inserts just the property name, without including its array
size.
(IDE) Code Editor: copy-clicking an item in the browser now replaces
selected text in the editor, rather than prepending the clicked
item to the selected text.
(IDE) Code Editor: Copy-clicking no longer crashes when no source was
selected.
(IDE) Code Editor: Double-clicking past the end of the last line no
longer causes an assertion failure
(IDE) Code Editor: Double-clicking to select a word now works even
when clicking the first character on a line.
(IDE) Code Editor: Drag-selection scrolls correctly in all
directions.
(IDE) Code Editor: fixed a crash which could occur when invoking the
code editor with option-tab and then copy-clicking a word in
the browser pane.
(IDE) Code Editor: long lines (longer than 255 characters) now scroll
all the way to the right.
(IDE) Code Editor: memory leak every time you closed a code editor is
now fixed.
(IDE) Code Editor: Navigation Buttons no longer cause a crash when
revisiting a deleted method. Now, when a method or handler is
deleted, it is removed from the navigation history.
(IDE) Code Editor: Overloaded methods no longer confuse the IDE,
causing it to jump to the wrong one as soon as you start
typing.
(IDE) Code editor: replacing content of a method or event handler
while Hide Empty mode was turned on no longer crashes.
(IDE) Code Editor: shift-click-and-drag to extend text selection now
works better.
(IDE) Code Editor: shift-click-drag behavior refined further.
(IDE) Code Editor: Undo no longer causes bad indentation.
(IDE) Color Palette: reset when you create a new project.
(IDE) Constants: icon shown in browser now reflects the actual data
type of the constant.
(IDE) Custom Classes: derived from serial controls, timer controls
and possibly others will now not only contain the custom
properties the user has added but also the other properties
common to the serial or timer control.
(IDE) Custom Classes: Icon in the Window editor derived from parent
class when subclassing instead of using the generic appearance.
(IDE) Debugger: ArrayViewer: Fixed a crash when ArrayViewer closes
while still having the focus.
(IDE) Debugger: fixed crash which could occur when a debug session
must be shut down due to a change in a source code line while
running in the IDE.
(IDE) Debugger: Non-local arrays are now viewable while debugging
(click view in their parent object viewer)
(IDE) Debugger: Singles are now displayed properly in the object
viewer.
(IDE) Dialogs: fixed button captions in several dialogs where
"Add..." had inadvertently been changed to "Create", and
"Edit..." to "Modify".
(IDE) Edit Menu: last few menu items had incorrect balloon help; now
fixed.
(IDE) Error handling: crash which occurred when a close event handler
called MsgBox, while an application was being terminated due to
an unhandled exception, now fixed.
(IDE) File dialogs: fixed bug which caused the dialog asking if you
want to save the previously open project to appear twice when
using the "Open" menu command.
(IDE) File Format: database project items no longer lose their
settings when saved in the new file format.
(IDE) File Format: fixed a bug which caused the IDE to freeze when
saving a string property larger than 32K.
(IDE) File Format: fixed a bug which caused the IDE to hang while
reading a new (v3) format file containing a CFM plugin.
(IDE) File Reading: project files with a bogus default window
(corrupted) are now handled more gracefully.
(IDE) File Reading: projects with corruption that was causing some
modules or classes to be inaccessible can now be read because
additional error checking allows REALbasic to recover projects.
(IDE) Help Key: no longer triggers a "command-1" shortcut in running
applications.
(IDE) Input Manager support: fixed a bug which sometimes required you
to press the Delete key twice to delete a control in the IDE
while using the Input Manager (in Japanese, for example).
(IDE) Language Reference: button no longer toggles between "Go" and
"Search" when the reference window is deactivated (i.e. in the
background).
(IDE) List box: ColumnCount and ColumnWidth now immediately update
the appearance of the control in the window editor to reflect
user settings of in the properties window.
(IDE) List box: contents no longer appear bottom justified when the
number of items was less than the total visible.
(IDE) List box: headers taken into account when calculating the
vertical scrollbar
(IDE) List box: headings no longer show in the Window editor when
hasHeading is set to false and the initial value is changed.
(IDE) List box: resizing a list box adjusts its scrollbars.
(IDE) Locked Project: overwriting a locked project file is no longer
allowed.
(IDE) Memory leak: Edit fields no longer leak four menu items per
run.
(IDE) Memory leak: Fixed two usually-minor memory leaks (one
unhandled exception, one application object) while running
applications repeatedly in the IDE.
(IDE) Memory leak: project item (such as a picture) memory is now
released when it is deleted from the project, or when the
project is closed.
(IDE) Memory usage: leaked objects (usually caused by circular
references in user-written code) memory usage now cleaned up
when the next run begins.
(IDE) Menu Item: Copy And Append's keyboard shortcut has been
re-assigned to Shift-Cmd-C to avoid a conflicts with the "New
Constant" which also used Option-Cmd-C."
(IDE) Menus: Fixed a problem where selecting a window in the window
menu would activate a different window or do nothing at all.
(IDE) Menus: Relocating items when a project is loaded now enables
the "Save" menu item.
(IDE) Menus: The stack menu no longer appears in the bottom of the
window list during debugging You can still get to it through
the window menu, just use Hide/Show Stack
(IDE) New File Format: now correctly stores a default window setting
of <none>.
(IDE) New File Format: now correctly stores the interfaces of a
class.
(IDE) Object viewer and Array Viewer: hyperlink "View" hotspots in
Object viewers and Array viewers now shift appropriately when
the window is resized. Previously one would have to click to
the right of the word when the window was diminished from its
original size.
(IDE) Online Reference: clicks in the scroll bar no longer "fall
through" to a code box behind the scroll bar.
(IDE) Online Reference: fixed a problem which caused the reference to
jump to the wrong topic, showing instead the previous or next
topic alphabetically.
(IDE) Online Reference: paging with the scroll bar now scrolls the
content area by the right amount.
(IDE) Online Reference: Pressing the Go button after a search has
failed will no longer display "search failed" in the left
column but instead jump to the appropriate spot in the list of
themes.
(IDE) Plugin API -- REALinRuntime: fixed a bug which caused this to
sometimes incorrectly return true for a control in an IDE view
editor window.
(IDE) Plug-in Support: changed management of the resource chain such
that plugins are more likely to be able to access their
resource fork without explicitly asking for it. Plugin
developers should not rely on this, however; follow the new
guidelines in the plug-ins SDK.
(IDE) Plug-ins: "Close" method of a Plug-in control is now called
before the instance data is released, rather than after."
(IDE) Plug-ins: Floating-point properties of plug-in controls now
display correctly in the Properties window.
(IDE) Project item import: imported classes and windows in v3 format
no longer lose their references to other classes (for example,
the Super of a control would be lost).
(IDE) Project Settings: changes to project settings now cause the
Save command to be enabled.
(IDE) Project window -- Locating Items when re-locating an external
item in the project, the dialog now uses Navigation Services
(when available).
(IDE) Project Window: importing a window or class no longer causes
the project's default window to change to "none".
(IDE) Project Window: Moving items from one folder to another in the
project window can now be undone (Cmd-Z) and redone.
(IDE) Project window: Pictures -- when re-locating a picture file in
the project, the dialog now allows selection of any file type
(since it may be anything supported by QuickTime).
(IDE) Project Window: Relocating a project item now marks the project
as needing to be saved. The "Save" menu-item will be enabled in
this case and REALbasic will prompt you to save the project
before quitting.
(IDE) PropertiesWindow: Property Panes can no longer be shorter than
the space they need. e.g. if you take a editfield and type in
some text, and then change the textSize Property to a value of
4 the Property Pane won't shrink to that size since its caption
and the widget at the end won't fit.
(IDE) PropertiesWindow: The "Edit" button has been made slightly
smaller so that it doesn't butt up against the edge of the
scrollbar.
(IDE) Registration Reminder: "Quit" button now uses the same string
as the IDE's Quit Menu item to allow for easier Localization.
(IDE) Registration: A more helpful message is displayed in the
Previous Serial Number field if an old copy is already
installed.
(IDE) Registration: fixed a problem which caused some REALbasic 2
serial numbers to be considered invalid as a base for upgrading
to REALbasic 3.
(IDE) Save Changes Dialog: Made Save changes dialog a moveable modal,
so users can't display the dialog multiple times.
(IDE) Save/Create File dialogs now have more accurate & informative
prompts.
(IDE) SaveAs dialog: re-adjusted the non-NavServices Save As dialog
for international users.
(IDE) Saving: errors when saving now present an error message rather
than failing silently.
(IDE) Scriptable IDE: build event now waits for the build to complete
before returning without causing REALbasic to quit before the
build is finished.
(IDE) Scrollbars/Sliders: Now display properly when loaded from a
file, and after the Max is resized to fit a value.
(IDE) Show Hidden Methods button: no longer crashes when used in a
class with no controls.
(IDE) Stationery: opening a stationery pad, the IDE now properly
calls the project "Untitled" and considers it unsaved, just as
creating a fresh project with the New command does.
(IDE) Stationery: REALbasic is now stationery-aware, so when you
double-click a stationery pad in the Finder, the Finder no
longer makes a document copy of it before opening it in
REALbasic.
(IDE) Tab panel: compiling no longer causes invalid, unusable Tab
panels in the IDE after a build.
(IDE) Tool bar: plugins which register multiple controls now get the
correct icons in the toolbar.
(IDE) Tool bar: stray highlighting caused by moving and clicking very
quickly is now fixed.
(IDE) Toolbar: fixed a bug which could cause occasional crashes on
some systems.
(IDE) Viewers: "string View" in the Object viewer and ArrayViewer now
comes from a resource and so is international savvy.
(IDE) Viewers: Array viewers can now view arrays of objects.
(IDE) Viewers: Array viewers no longer crash when attempting to show
2D and higher dimensional arrays.
(IDE) Viewers: Object viewers and Array viewers now respond to the
appropriate menu item or their keyboard equivalents for Close
and Zoom.
(IDE) Window editor: Alignment lines flicker less on slower machines.
(IDE) Window editor: Alignment lines no longer occasionally leave
stray pixels behind.
(IDE) Window editor: custom classes in a window can now be duplicated
(or copied and pasted) without crashing.
(IDE) Window Editor: While typing in the caption or text property of
a control and then changing another property the text of the
control will no longer revert to its old state in the window
editor. This change applies to Pushbuttons, Editfields,
GroupBoxes, CheckBoxes, RadioButtons, and StaticTexts.
(IDE) XML Export: "<RBVersion>" tag has been replaced with an
"<RBProject>" top-level tag that encloses the rest of the file,
per the XML specification.
(Mac) Built Applications: applications using plug-ins which use
sockets are now built correctly. Previously, the built
application would not have the Open Transport code it needed
unless the project also made use of the Socket class. This
fixes, for example, using postgreSQL in stand-alone Mac
applications.
(Mac) Command-Period: both the command-period sequence (to trigger
UserCancelled in your REALbasic code) and Command-shift-period
(to switch to the REALbasic debugger) now work on non-QWERTY
keyboard layouts.
(Mac) Control activation: controls are now deactivated when the
window is deactivated. For most controls, this means they are
drawn as if disabled. Static texts are drawn in a color close
to gray but retaining some of their original color.
(Mac) Control Activation: cosmetic errors occurring when the
activation state of a control was changed, while it was
deactivated, have now been fixed.
(Mac) Control enabling: controls which previously did not change
their appearance to reflect the state of their "enabled"
property, now do so. These include the progress bar, disclosure
triangle, chasing arrows, separator, and image well.
(Mac) CPU Usage: in order to reduce sluggishness in places such as
EditFields, we've reduced the maximum sleep time from 20 ticks
to 5 ticks. This increases the CPU usage of your programs only
slightly, but produces a much more responsive feel when typing.
(Mac) Date class: a work around for a MacOS system bug involving date
records with day=0 has been added. Operations such as "d.day =
d.day-1" are now safe.
(Mac) Edit Field: single-line Edit Fields now use a line height
consistent with that provided by system defaults, even after
assigning new text or resetting the font. One benefit is that
text in the Properties window no longer jumps up a pixel when
you enter the field, as happened in recent alphas.
(Mac) EditField.ScrollPosition: assigning ScrollPosition of a
multi-line Edit field without a scroll bar no longer crashes.
(Mac) EditField.TextFont and related properties: previously, the
exact behavior of assignment to TextFont, SelTextFont,
TextColor, SelTextColor, TextSize, and SelTextSize was
undefined, and varied quite a bit between single-line and
multi-line edit fields. The behavior has now been unified as
much as possible, and is defined as follows (where "e" is an
EditField): "e.text = X" replaces the entire contents of the
field with X. The font, size, and color are uniform and match
the values last set with e.textFont, e.textSize, and
e.textColor, or if these haven't been used, the settings in
the IDE. (Note that using e.selTextFont etc. may change the
entire appearance of the text -- always true if the field is
not styled -- but does NOT change the "default" settings used
when the whole text is replaced with "e.text = X".);
"e.textFont = X" in a styled or plain field changes the font of
the entire field to the given value. It also resets the
"default" font, size, and style which will be used if the
whole text is replaced.; "e.selTextFont = X" in an plain field
changes the font of the entire field to the given value.;
"e.selTextFont = X" in a styled field changes the font of the
selected text to the given value.; Text size and color work
just like the font. CAVEAT: font, size, and style are stored in
a single structure internally, so changing any of them by
assigning to either TextFont or TextSize will cause the current
settings for font, size, and style to ALL be stored as the
default. Text color is stored separately. But do not rely on
this behavior; it's best to set the font, size, and color
explicitly when you want to change them for the whole field.
(Mac) EditField: multi-line EditFields without scrollbars no longer
scroll the text to the bottom of the visible field when you
start typing.
(Mac) EditFields: fixed a bug introduced in 3.0b2 which caused the
Home, End, Page Up, and Page Down keys to malfunction in
multi-line EditFields.
(Mac) Fixed a memory leak which showed up, for example, in Picture
masks.
(Mac) Global floating windows: color depths no longer really low.
(Mac) Global floating windows: once again work with MacOS versions
older than 8.5, fixing a bug introduced in 3.0a5. NOTE: Global
floating windows have under these older versions of MacOS have
a very low color depth, due to the Mac OS itself.
(Mac) Graphics.StringWidth: now works correctly for strings longer
than 255 characters.
(Mac) IDE: Online Reference now scrolls to the bottom.
(Mac) Listbox.ScrollPosition: assignment of scrollPosition when new
value was beyond the number of rows at the last refresh no
longer fails.
(Mac) MacOS 8.0/8.1: both built applications and the IDE run again on
these versions of MacOS, thanks to the demise of a bug
introduced in 3.0a04.
(Mac) Menu Command Keys: fixed problem with commands keys not
interpreting constants in the IDE.
(Mac) OpenPrinter: Bug (introduced in 3.0a09) which caused this
function to crash or produce immortal print progress dialogs
has now been fixed.
(Mac) ParseDate method: d.totalseconds = d.totalseconds no longer
required to force the parsed date to update its properties.
(Mac) Pop-up menu: memory leak fixed.
(Mac) SelectFolder: Navigation Services dialog is now movable modal,
and allows background windows to refresh.
(Mac) Sliders and Scroll bars: Setting the PageStep property of for a
scroll bar in code will now re-adjust the proportional scroll
bar accordingly.
(Mac) Sliders: Vertically Oriented Sliders now behave correctly when
the user clicks in the track above and below the slider.
(Mac) Socket.Lookahead: now works without crashing in built
applications (as well as in the IDE).
(Mac) Sound class: looping sounds memory leak fixed.
(Mac) Sounds: fixed a bug which caused sounds to sometimes play
incorrectly (play the wrong sound, or a horrible screeching
noise).
(Mac) Sprite surface: collision detection on the pixel level now
works on Mac OS.
(Mac) Sprite surface: sprites created from cicn resources no longer
cause crash.
(Mac) Timers: fixed a bug which caused timers with a period in the
17-50 ms range to fire too slowly on certain systems. (That bug
was introduced in 3.0b2.)
(OSX) Built applications: now correctly detect when they are running
under Aqua, and adjust their appearance accordingly.
(OSX) Date objects are now initialized to current date under OS X.
(OSX) Dates: TotalSeconds property now can now be set under Carbon.
(OSX) Focus rings now erase properly when a control loses the focus.
(OSX) Global floating windows: now work properly under Carbon/OS X.
(OSX) IDE: fixed bug which caused last two commands in the Edit menu
to invoke the wrong dialogs.
(OSX) List Box: header has proper Aqua appearance.
(OSX) Menu item: "Hide" is now named "Hide REALbasic" per OS X
standards.
(OSX) Menu item: Quit command (in IDE) now appears in Application
menu per OS X standards.
(OSX) Plug-in Compiling: building applications that call plug-in
functions (such as Shell.Execute) under Mac OS X no longer
suddenly quit.
(OSX) Plug-ins: External plug-ins are now found in the "plug-ins"
folder next to the REALbasic application.
(OSX) Plug-ins: we've added a work-around for a bug in MacOS X
(Public Beta) which was causing intermittent crashes while
loading plug-ins. Affects both the IDE and built applications.
(OSX) Progress bars: animate even when timers or threads are active.
(OSX) Progress bars: Deleting progress bars in OS X Window editor now
actually deletes them, instead of leaving "Zombie" progress
bars.
(OSX) PropertiesWindow: Now looks much better under Aqua. Property
Panes don't overlap each other and don't overlap the scrollbar.
(OSX) Stability: fixed bug which caused the IDE's or built
application's resource fork to be inaccessible on some versions
of OS X. (Actually more of a work around for an Apple bug, but
still...)
(OSX) Window BackgroundColor: now implemented for Carbon. (Does not
yet work properly under OS X).
(OSX) Window.BackgroundColor: now appears correctly under OS X.
(Win) Application icon: now appears in the title bar, instead of the
default Windows one.
(Win) Application.OpenDocument Event: Windows applications can now
receive OpenDocument events.
(Win) Arrays: arrays are no longer dynamically allocated when needed.
If you want to allocate a 10000 item integer array, the whole
array will be allocated instead of on an "as needed" basis.
This should fix the slow array problem when first accessing the
array.
(Win) Arrays: removed changes from b2 that allocated the entire
array. To achieve the same effect, just set the last element of
the array, so that the whole array is allocated.
(Win) Arrays: were not being freed when out of scope, this is now
fixed.
(Win) BevelButton: assigning a System font name should now map to
Window's MS Sans Serif font.
(Win) BevelButton: no longer leak Win32 System Resources, and GDI
Resources when refreshing themselves.
(Win) BevelButtons: Bevel and ButtonType properties can now be set
via code.
(Win) Canvas: Canvases now draw in their correct location.
(Win) CheckBox, RadioButton, and ChasingArrow: will now inherit the
background color of the parent Window.
(Win) Clipboard.Picture: You can now set picture data to the
clipboard.
(Win) Control Cloning: cloned controls are now visible. Previously
they were created, but didn't appear unless they were cloned on
a canvas.
(Win) Controls: Disclosure Triangles and Pop-up Arrows now refresh
correctly and have transparent backgrounds on Win32.
(Win) Controls: Refreshing controls now behaves as expected (e.g.,
Canvas1.refresh).
(Win) Controls: Various controls including, but not limited to push
buttons, checkboxes and radio buttons now no longer receive
clicks when disabled.
(Win) data types: single to integer conversion problem fixed.
(Win) DataBase.dateColumn: now implemented.
(Win) Database: REAL DB Double Fields: are now converted properly to
little endian.
(Win) Date.AbbreviatedDate: now returns with the correct abbreviated
date format string.
(Win) Date.Day: when the day that the user is setting is beyond the
end of the month, the day will now return the day of the next
month that it falls under. Similarly, if the day that the user
is setting is before the beginning of the month, the day will
return the last day of the previous month.
(Win) Date.Month: when the month that the user is setting is beyond
the end of the year or before the beginning of the year, the
year will be incremented or decremented accordingly, just like
the Mac.
(Win) Date: negative months should now behave the same on Windows as
they do on the Mac. Also, setting the year will now work even
if you're on a leap day.
(Win) Declares: fixed problem with using MemoryBlocks in declares.
(Win) Declares: fixed weird behavioral problems when calling declared
methods. Previous workarounds such as having a useless line
calling str() are no longer necessary.
(Win) Disclosure Triangle: No longer crashes when clicked. Crashes
used to occur only on systems with QuickTime installed. This
bug was introduced Aug 15 2000.
(Win) Drag and Drop: Dragging from a multi-line edit field no longer
causes crash.
(Win) Drag and Drop: dragging multiple items is now possible.
(Win) Drag and Drop: folderitems -- controls now accept folder items.
(Win) Drag and Drop: MacData -- controls now accept MacData.
(Win) Drag and Drop: now shows a boxed outline to indicate the
dimensions of your drag object.
(Win) Drag and Drop: pictures -- controls now accept picture drops.
(Win) Drag and Drop: removed a debug output string from compiled
apps.
(Win) Drag and Drop: text -- controls now accept text drops
(Win) Edit Field: acceptTabs property now works for multiline and
single line editfields. If acceptTabs is false, it behaves as
previously, i.e. tabs to the next control.
(Win) Edit Field: invisible EditFields no longer fire LostFocus and
GotFocus events.
(Win) Edit field: Now behave correctly in their scroll bar and border
region when overlapped with a canvas control.
(Win) Edit field: SelStart assignment bug fixed; it now works
correctly and just like the Mac version. Caveat: under Win32,
a text selection is visible only in the Edit field which has
the focus. (This is a Win32 system difference, not related to
REALbasic.)
(Win) Edit Field: SelTextColor property now returns color correctly.
(Win) Edit Field: should now all receive changed (text/selection)
events.
(Win) Edit Field: TextFont property Edit Field updates correctly at
start up to handle symbol encoded fonts.
(Win) Edit Field: TextStyleData property now implemented, but is not
binary equivalent to the Mac TextStyleData. This means that you
should not create your own style data from a string and pass it
to SetTextAndStyle, since they are not equivalent on both
platforms. Also implemented SetTextAndStyle, which previously
did nothing.
(Win) EditField.KeyDown: getting the ASC of the Key parameter now
works.
(Win) EditField.KeyDown: now passes arrow keys, insert, delete, home,
end, page up, and page down keys to the KeyDown event. These
are coded the same as the Mac key codes.
(Win) EditField.TextFont and related properties: behavior now matches
that of Mac OS; This also fixes the EditField Appearance
background colors. EditField.TextFont and related properties:
previously, the exact behavior of assignment to TextFont,
SelTextFont, TextColor, SelTextColor, TextSize, and SelTextSize
was undefined, and varied quite a bit between single-line and
multi-line edit fields. The behavior has now been unified as
much as possible, and is defined as follows (where "e" is an
EditField): "e.text = X" replaces the entire contents of the
field with X. The font, size, and color are uniform and match
the values last set with e.textFont, e.textSize, and
e.textColor, or if these haven't been used, the settings in the
IDE. (Note that using e.selTextFont etc. may change the entire
appearance of the text -- always true if the field is not
styled -- but does NOT change the "default" settings used when
the whole text is replaced with "e.text = X".); "e.textFont =
X" in a styled or plain field changes the font of the entire
field to the given value. It also resets the "default" font,
size, and style which will be used if the whole text is
replaced.; "e.selTextFont = X" in an plain field changes the
font of the entire field to the given value.; "e.selTextFont =
X" in a styled field changes the font of the selected text to
the given value. Text size and color work the same as the font
does.
(Win) EditField: fixed problem with disabled EditFields not updating
the text color when enabled.
(Win) EditField: will now accept double clicks and highlights the
word.
(Win) EditFields: fixed problem with clicking on the first 4 or 5
pixels of an EditField.
(Win) Events: Mouse Down and Action Events now occur in the proper
order when controls are overlapped, and pass through or don't
pass through depending on user code, or defaults.
Ramifications: You can build your own overlapping custom canvas
controls on Windows; You can put a canvas on top of a list box
or edit field to catch events
(Win) Exceptions are now handled properly on Windows. Exception
handlers get called.; Exceptions are passed up the calling
chain.; Win32 stack size is 896k, using more now causes a stack
overflow exception.
(Win) Exceptions: fixed problem with exceptions not getting caught
(especially in Open events).
(Win) Exceptions: fixed the last remaining exceptions case. This
example should now work.
(Win) Failed Assertions: These no longer fail silently under Windows.
Please report any you find in the usual manner.
(Win) Floating Windows: appear as a topmost Window, i.e. always on
top of any other regular Window.
(Win) Folder Item: memory leak fixed where instances of an object
were not being freed when out of scope.
(Win) Folder Item: OpenStyledEditField and SaveStyledEditField
methods now properly save/load styled text.
(Win) FolderItem.Count: fixed problem with counting the number of
files in your root volumes.
(Win) FolderItem.Delete: Empty folders can now be deleted under
Windows.
(Win) FolderItem.Item: Cache now updates to reflect files being moved
in/out of a folder.
(Win) FolderItem.Item: fixed problem with two trailing backslashes
appearing in pathname.
(Win) FolderItem.Item: the items in a folder are not cached as
frequently as before, so accessing the items in a folder should
be quicker.
(Win) FolderItem.Name: introduced in the last alpha, which duplicated
the filename string so that the filename was repeated twice
i.e., renaming a folder "NewFileName" gave it
"NewFileNameNewFileName" instead.
(Win) FolderItem.OpenAsSound: Is now implemented under Windows and
uses .wav files.
(Win) FolderItem.Parent: Parent path should return all valid
directories instead of empty strings at times.
(Win) FolderItem: Fixed problem with appending .jpg to files when
saving as JPEG when the extension ".jpe" is already present.
(Win) FullScreen: works for SDI and MDI applications, and now hides
the border so it's less visible on multiple display monitors.
(Win) GetFolderItem: Was not returning nil for invalid folders whose
parent path is invalid. Now fixed.
(Win) GetSaveFolderItem: Default filename is now displayed in the
save dialog box.
(Win) Graphics.DrawPicture: memory leak fixed.
(Win) Graphics.FillOval: should now resemble an oval/circle, instead
of a pear-like shape.
(Win) Graphics: DrawCautionIcon, DrawStopIcon, and DrawNoteIcon
methods now implemented.
(Win) Graphics: DrawLine method -- fixed the "rough lines" problem
introduced in 3.0a11, where lines originating from the same x,y
coordinates would show up 1 pixel off.
(Win) Graphics: DrawString method -- new line characters handled
correctly.
(Win) Group Box: EditFields, PopupMenus, and Sliders now receive
events when inside group boxes.
(Win) Invisible Controls: Fixed the problem (introduced in 3.0a08)
where invisible controls could get mouse clicks.
(Win) KeyBoard class: now returns key modifiers. Supported properties
include, AsyncControlKey, AsyncOptionKey, AsyncShiftKey,
AsyncCommandKey, CommandKey, ControlKey, OptionKey, and
ShiftKey.
(Win) KeyDown event: controls now receive CR keys (i.e. the Enter
key).
(Win) Line Control and Graphics.DrawLine: missing pixels bug fixed.
(Win) List box: drag and drop -- fixed refresh issue when dropping an
item on to a listbox.
(Win) List box: editable cells now display their text while being
edited.
(Win) List box: EnableDrag property now works as intended, i.e. you
can drag an item from the listbox to any other control.
(Win) List box: endcaps now visible.
(Win) List box: events -- fixed problem with change and double click
events when the EnableDrag property is checked.
(Win) List Box: failed assertion error if clicking on the listbox
whose EnableDrag property is true fixed.
(Win) List box: Fixed a refresh problem which prevented drawing on
top of a list box.
(Win) List box: fixed refresh problem that grayed out the listbox.
(Win) List box: Headers now receive clicks again.
(Win) List box: Hierarchical list boxes now highlight properly,
regardless of rows alignment setting.
(Win) List box: Hierarchical list boxes update correctly when
expanding
(Win) List box: refresh problem that prevented the listbox from
updating when setting the CellCheck property in code fixed.
Fixed other listbox refresh problems in the process.
(Win) List box: removed focus ring when editing a cell.
(Win) Listbox & EditFields: fixed a bizarre problem with editfields
losing focus and win32 applications crashing. This happened
with an editable listbox, but only occured in special cases.
(Win) Little Arrows: No longer crashes when clicked. Crashes used to
occur only on systems with QuickTime installed. This bug was
introduced Aug 15 2000.
(Win) MDI: Events -- Mouse events (MouseEnter, MouseMove, MouseExit)
now work correctly for all controls and windows in Win32
applications using MDI.
(Win) MenuBarVisible: now works under Windows.
(Win) Min/Max sizing: now handles all cases. I.e., different border
styles, and border widths.
(Win) Modal dialogs: more than one can exist at once, even when
hidden. This was also the cause of file dialogs failing to
appear.
(Win) MouseCursor: fixed problem with assigning a mouse cursor, it
should now update immediately instead of waiting for the next
Windows message to update.
(Win) MouseCursor: setting custom mouse cursors now work more
consistently instead of partially working for some controls,
especially EditFields. Also, setting mouse cursors in a
control's Open event now works.
(Win) Multiple Monitors: Events -- Mouse events now work correctly in
negative monitor space when using multiple monitors under Win98
and Win2000.
(Win) OpenPrinter: Now prints the same size as using
OpenPrinterDialog.
(Win) Parent.Child: The parent and child path problems have been
fixed.
(Win) ParseDate: implemented.
(Win) ParseDate: now properly parses 1 or 2 digit years.
(Win) Picture: 1-bit transparency fixed, 4-bit and 24-bit
transparency added. 2-bit and 32-bit pictures continue to map
to 4bit and 24-bit pictures respectively.
(Win) Picture: Odd width pictures: odd width pictures imported to
your project are now stored properly, so the missing pixels at
the bottom of your image are corrected.
(Win) Pop-up menu: fixed a problem with moving a Pop-up menu at
runtime when the Pop-up menu's parent was something other than
the application window. i.e. if the Pop-up menu was on top of a
canvas.
(Win) Pop-up Menu: now receives focus when tabbed in to.
(Win) PopupMenu.InsertRow: now inserts at the correct position within
the popupmenu.
(Win) PrinterSetup.PageSetupDialog: PageSetup dialog displayed, and
not an Open Printer dialog.
(Win) ProgressBars: Indeterminant progressbars can now be hidden.
(Win) QuickTime movie: now displays in its correct position on the
window.
(Win) QuickTime movie: now refreshes properly when the window is
moved.
(Win) Rectangle Control: Missing border pixels on upper-right corner
is now fixed.
(Win) RGBSurface: 24-bit RGB surfaces now work on Win32 (and Mac),
32-bit RGBSurfaces are mapped to 24-bit surfaces on windows.
(Win) Screen.Depth: Screen(i).Depth now returns the correct value on
your Win32 primary screen.
(Win) Screen: for multiple display monitors should now update
properly for MDI applications.
(Win) ScrollBar: should now fire events when inside a groupbox.
(Win) SelectColor: now works for Win32.
(Win) Self.SetFocus: focus correctly set to the parent window (clears
focus from other controls).
(Win) Serial.DataAvailable: this event should fire more consistently.
(Win) Sliders and Scroll bars: PageStep and LineStep can now be set
from code for sliders and scroll bars.
(Win) Socket.DataAvailable: this event should fire more consistently,
instead of being skipped sometimes.
(Win) Socket.LocalAddress: fixed problem where it would return the
wrong IP address.
(Win) Socket.LocalAddress: returns a valid local IP address, whether
you're connected or not.
(Win) Socket.Poll: works, even when called in a tight loop. (For
plugin authors, this fix applies to REALSocketPoll as well.)
(Win) Socket.PPPStatus: returns useful information: * 0 - No PPP *
1 - Connection idle * 4 - Connecting * 5 - Connected.
(Win) Socket: fixed some problems with the Poll method and error
events not firing consistently.
(Win) Socket: listen or connect memory leak fixed.
(Win) Sound.PlayLooping: sound can now be looped.
(Win) Sound.Stop: stops the sound if any are currently playing.
(Win) Sound: fixed problem when a Sound object is created as a
property and using OpenAsSound in one method, while playing it
in another method.
(Win) Sound: playing sound from a resource no longer crashes if no
sound card is present.
(Win) Sprite surface: collisions are now detected (at the pixel
level) under Win32.
(Win) Sprite surface: runs on Win32 (there are Known Issues in
3.0a05).
(Win) Sprite surface: scrolling now implemented for Win32.
(Win) Stability: fixed problem introduced in 3.0b3 that resulted in
general instability.
(Win) Static Text: now have transparent backgrounds on Win32.
(Win) String functions UpperCase and LowerCase: passing an empty
string no longer crashes on Win32.
(Win) String/Object parameters: using string or object parameters is
more stable. Previously, they may have been freeing memory that
shouldn't have been freed.
(Win) System colors: should now return the correct REALbasic RGB
color, instead of the BGR color.
(Win) System.SerialPortCount: now reports the accurate number of
usable serial ports (but does not go beyond 9).
(Win) Text Controls: fixed a memory leak for controls that retrieve
text, such as EditField.Text.
(Win) The following items now work properly and no longer corrupt
memory. This memory corruption was causing unexplained crashes.
Windows applications that use these controls will now be much
more stable than previously. This fixed 32 known bugs, of which
15 caused crashes. Rectangle: Fixed setting/getting FillColor.;
Rectangle: Fixed setting/getting BorderWidth.; Rectangle: Fixed
setting/getting TopLeftColor.; Rectangle: Fixed setting/getting
BottomRightColor.; Line: Fixed setting/getting BorderWidth.;
Line: Fixed setting/getting LineColor.; Oval: Fixed
setting/getting FillColor.; Oval: Fixed setting/getting
BorderWidth.; Oval: Fixed setting/getting BorderColor.;
RoundRect: Fixed setting/getting FillColor.; RoundRect: Fixed
setting/getting BorderWidth.; RoundRect: Fixed setting/getting
BorderColor.; RoundRect: Fixed setting/getting OvalWidth.;
RoundRect: Fixed setting/getting OvalHeight.; Scrollbar: Fixed
getting LiveScroll.; Slider: Fixed getting LiveScroll.
(Win) Timer: fixed a problem when setting the mode to 1 in the IDE,
the timer never fired.
(Win) Timer: no longer consumes 100% CPU. Precision is not as high as
it was previously. The precision on Win95/98 is 1/18 of a
second (or 55 milliseconds), and 10 milliseconds on NT.
(Win) Timers: no longer require a Window to be open to work.
(Win) Val: Val("") and Val("t") now returns 0."
(Win) VolumeName: Now returns valid volume name drives, this was
fixed when the FoldItemParent bug was fixed.
(Win) Window.Close: fixed a problem with closing an application,
where an unhandled exception would sometimes occur because some
controls were being deleted twice.
(Win) Window.DrawInto: works on Windows. Note: if any controls are
off the visible screen page or hidden by another window,
DrawInto will not be able to draw those controls.
(Win) Window.KeyDown: fixed bug in translating key from Windows
virtual key to a Mac equivalent key. Also, pressing Shift,
Ctrl, or Alt, should not trigger the KeyDown event anymore.
(Win) Window.KeyDown: key code is now more consistent with the Mac
key code, especially for extended keys, like arrow keys.
(Win) Window.visible: setting the visible property of a Window to
true" will now display the Window."
(Win) Window: fixed problem with unhandled exceptions error at start
up, since some of the events were being fired too soon.
(Win) Window: fixed problem with windows disappearing behind the main
window.
(Win) Window: fixed the ordering of events being fired, so the Open
event should fire before the Activate event.
(Win) Window: MinWidth/MinHeight, MaxWidth/MaxHeight should now work
under windows.
(Win) Window: MouseDown fires again. This broke in 3.0a11.
(Win) Window: Refreshing windows no longer refreshes the desktop
window.
(Win) Window: RefreshRect now only refreshes the rectangle in
question and not the window and the desktop.
Various bug fixes caused these workarounds to fail:
(All) PostgreSQL dates: the previous trick of using NativeValue to
get a human-readable string from a date column no longer works;
NativeValue now returns an internal binary representation. Use
StringValue (which now works as it should) instead.
(Win) Events: Mouse Down and Action Events -- placing a canvas
underneath a control to catch its events will no longer work,
place the canvas above the control, just as you would on the
Mac.
The following known issues still exist in this release
(All) Sprite surface: Out of memory condition sometimes fails to exit
gracefully (i.e., crashes). Assign more RAM to IDE and built
applications.
(Car) Suspend Run: command-shift-period sequence (to switch to the
REALbasic debugger) still doesn't work under Carbon or Mac OS
X.
(IDE) Building: You can't build a Mac Classic and a Mac Carbon at the
same time, since they're two different files but you can only
set one file name. Just build one at a time for now, and append
something meaningful to the Carbon version's name or use
AppleScript to automate it.
(IDE) Custom Classes: Custom Serial controls won't use a pop-up to
select port, parity etc. You have to use the integer
equivalent.
(IDE) Custom Classes: Custom Timers and Serial controls will not
retain default values.
(IDE) Debugger: Viewers -- arrays with more than one dimension are
still not viewable from IDE's debugger.
(IDE) Project window: Folders aren't yet exportable via Menus.
(IDE) Project Window: If a folder in the finder already exists with
the same name as the one you are dragging nothing will happen.
(I.e. the folder will not be replaced and no message will
appear to warn you of this)
(IDE) REAL Database: doesn't support field options ("Primary" and
"Not Null" -- the latter acts as if it's supported, but the
option isn't saved). This is not a new issue, but since the
schema editor has changed it seemed worthy of mention.
(IDE) Sprite surface: when loading a 2.1 project, Sprite surface will
have height and width of 0, making it impossible to see. Find
it with Select All (or use the tab key), then adjust height and
width.
(Mac) PrinterSetup: due to a long-standing limitation of Apple's
Laserwriter 8 printer driver, the only resolutions available
via this driver are 72 and 300 dpi, even if the printer really
supports other resolution.
(Mac) Text: Ampersand symbols in constants behave as they always
have, i.e., Mac and Windows are different.
(OSX) Progress bars: Don't try to overlap two progress bars, or put
another control on top of a progress bar. It looks bad. This is
not our fault.
(OSX) When controls are too close together, and one loses the focus,
the border of the neighboring control may not get refreshed
correctly. Work-around: put a few extra pixels between
controls.
(Win) Drag and Drop: doesn't work with overlapped controls.
(Win) Groupboxes and cloned (at runtime) controls will not display
their tool tips.
(Win) Sprite surface: colors are somewhat off in 8-bit mode due to
palette differences. Windows and the Mac OS use different 8 bit
color palettes.
(Win) Sprite surface: slower than the Mac when changing the sprite
image often in a single frame